#!/bin/bash
#
# Nome do arquivo: down-firefoxreleases
# Descrição: Script para baixar as versões do firefox
#
# Versão 0.1: Criação do programa
# Versão 0.2: Utilização do comando zenity para escolha da release
# Versão 0.5: Automatizando variáveis
# Versão 0.6: Caixa de diálogo informativa no final do download
# Versão 0.7: Alterando a localização do diretório compare-locations para releases superiores à release mozilla-esr24
#             Adicionada a pergunta sobre a debianização do pacote
#
#
# Autor: Rogenio Lima Belem - OPBLM/OPSIN/OPSOI
# Criado em Sex Out 18 08:00:35 BRT 2013
#
#
#

sitebase="https://hg.mozilla.org"

# Escolhendo a release
echo -e "Colhendo informações iniciais. Aguarde.\n"
wget -nv $sitebase/releases
release=`grep -Eo 'mozilla-esr[0-9]{0,2}' releases | sort -ur | zenity --list --title="Down-firefoxrelease" --text="Escolha a release" --column=Releases`
if [ -z $release ]
then
	rm releases
	exit 1
fi

# Escolhendo a versão
echo Colhendo informações da release $release
wget -nv $sitebase/releases/$release/tags
tag=`sed 's!</b>!\n!g' tags|grep FIREFOX|sed -r 's!.*<b>!!g'|head -n10 | zenity --list --title="Down-firefoxrelease" --text="Escolha a release" --column=Releases --width=250  --height=350`
if [ -z $tag ]
then
	rm releases tags
	exit 2
fi
versao=`echo $tag | tr 'A-Z_' 'a-z.' |sed -r 's|fox.(.*)esr.(.*)|fox-\1esr+\2|'`

# Baixar o fonte base do firefox
firefox=`tr \" \/ <<< $(grep -Eo "/rev/[[:alnum:]]{0,12}\"><b>$tag" tags ) | cut -f3 -d"/"`
echo Baixando arquivo $firefox.tar.bz2
[ -e $firefox.tar.bz2 ] || wget -nc $sitebase/releases/$release/archive/$firefox.tar.bz2

tar -jxf $firefox.tar.bz2

echo -e "\nAlterando o nome do diretório $release-$firefox para $versao\n"
mv $release-$firefox $versao

rm tags
wget -nc -nv $sitebase/l10n/compare-locales/tags
comploc=`tr \" \/ <<< $(sed -r 's!<td>!\n!g' tags|grep -Eo '/rev/[[:alnum:]]{0,12}\"><b>RELEASE[[:graph:]]{0,8}</b'|head -n1 ) | cut -f3 -d"/"`
[ -e $comploc.tar.bz2 ] || wget -nc -nv $sitebase/l10n/compare-locales/archive/$comploc.tar.bz2
tar -jxf $comploc.tar.bz2
#~ rm $firefox.tar.bz2 $comploc.tar.bz2

if [ `echo $release | sed -r 's!.*r(.*)!\1!'` -lt 24 ]
then
	dircomploc="$versao/compare-locales"
else
	# A partir da release mozilla-esr24, o compares-locales localiza-se dentro do diretório python
	dircomploc="$versao/python/compare-locales"
fi
echo -e "\nMovendo o diretório compare-locales-$comploc/ para $dircomploc \n"
mv compare-locales-$comploc $dircomploc

mkdir -p $versao/l10n/

idioma="ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de
el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE
gd gl gu-IN he hi-IN hr hu hy-AM id is it ja ja-JP-mac kk km kn ko ku lg
lij lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro
ru si sk sl son sq sr sv-SE ta ta-LK te th tr uk vi zh-CN zh-TW zu"

touch $versao/l10n/changesets
for i in $idioma
do
	echo "Baixando idioma $i"
	[ -e idioma ] && rm idioma
	wget -q $sitebase/releases/l10n/mozilla-release/$i/tags -O idioma
	arq=`grep "<tr class=\"parity0\">" idioma|sed -r 's!\<td\>!\n!g'|grep $tag|sed -r 's!.*rev/(.*)\".*!\1!g'`
	[ -e $arq.tar.bz2 ] || wget -nc -q $sitebase/releases/l10n/mozilla-release/$i/archive/$arq.tar.bz2
	tar -jxf $arq.tar.bz2
	mv $i-$arq $versao/l10n/$i
	[ -e changesettmp ] && rm changesettmp
	wget -q $sitebase/releases/l10n/mozilla-release/$i/rev/$arq -O changesettmp
	cs=`grep "<title>" changesettmp | sed -r 's!.*changeset(.*)</title>!\1!g'`
	#~ echo $i$cs
	echo $i$cs >> $versao/l10n/changesets
	rm changesettmp idioma
	#~ $arq.tar.bz2
done

# Compacta o diretório criado
tar -jcf $versao.tar.bz2 $versao

zenity  --question --title "Down-firefoxrelease"  --text "Deseja \"debianizar\" o pacote?"
if [ $? -eq 0 ]
then
	cd $versao
	dh_make -f ../$versao.tar.bz2 -m
	rm -r debian
	cd -
fi

# Limpando arquivos desnecessários
rm releases tags

zenity --info --text="O download da versão $versao foi completado com sucesso\!"
echo -e "\n\tDownload finalizado."
